fix(aaron): drop compiler-rt 18 darwin overlay#465
Conversation
Nothing in aaron's closure references llvmPackages_18 anymore — the system is on LLVM 21.1.8 — so the NixOS/nixpkgs#480849 workaround patches a derivation nobody builds. Verified on aaron: with the overlay deleted, `nix build .#darwinConfigurations.aaron.config.system.build.toplevel` dry-run shows only the toplevel itself and the build succeeds. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
etrobert-bot
left a comment
There was a problem hiding this comment.
Independent review (fresh clone on tower + verification on aaron). I cannot use --approve since the PR author is also etrobert-bot, so stating it here: verdict: approve — the overlay is dead code and its removal is safe to merge.
praise: Clean, surgical removal — the diff deletes exactly the overlay binding and its nixpkgs.overlays registration, nothing else. lib is still used elsewhere in the file (skhd bindings, lib.getExe), so no dangling argument.
What I verified independently:
grep -rniE 'compilerRtOverlay|compiler-rt|llvmPackages_18'over the branch tree: zero remaining references.nix flake check --all-systems --no-build --accept-flake-configon the branch: all checks passed.- On aaron, the running system's closure (
nix path-info --recursive /run/current-system) contains no LLVM 18 — onlyllvm-21.1.8,llvm-21.1.8-lib,compiler-rt-libc-21.1.8(+-dev). The overlay was already dead weight, confirming the PR's core claim. - In a fresh temp clone of this branch on aaron:
nix build .#darwinConfigurations.aaron.config.system.build.toplevel --dry-runexits 0 with nothing to build, and the evaluated toplevel's closure likewise contains only LLVM 21 components.
note (non-blocking): The toplevel I evaluated from the committed branch is af50xy6v…-darwin-system-26.11.d5bd9cd, not the sgqdmai… hash in the description — expected, since the description's build was from a working tree with the overlay deleted rather than the committed rev; both exist in aaron's store and both are LLVM-18-free.
note (non-blocking): The self-cleaning-guard convention in CLAUDE.md suggests pairing workarounds with an eval-time guard; this removal needs none since the code is gone entirely, and nixpkgs#523142 being unmerged is irrelevant now that nothing evaluates llvmPackages_18.
Summary
Part of a repo-wide audit of temporary fixes: this one no longer patches anything that gets built.
The overlay worked around NixOS/nixpkgs#480849 (llvmPackages_18.compiler-rt failing on darwin with Apple SDK 26.4's libc++ 21). Its removal trigger was "the fix lands in nixos-unstable" — that never happened (PR NixOS/nixpkgs#523142 is still open) — but the workaround died a different way: nothing in aaron's closure references
llvmPackages_18anymore. The system is on LLVM 21.1.8 (llvm-21.1.8,compiler-rt-libc-21.1.8are the only LLVM components in the closure), so the overlay overrides a derivation nobody evaluates or builds.Verification (on aaron, temp clone at this change)
nix build .#darwinConfigurations.aaron.config.system.build.toplevel --dry-runwith the overlay deleted: exactly one derivation to build — the toplevel itself. No compiler-rt, no LLVM 18./nix/store/sgqdmai3249bv7qicr58jw7gy5jb6yij-darwin-system-26.11.d5bd9cd.nix path-info --recursiveon that toplevel: only LLVM 21.1.8 components; nollvm-18/compiler-rt-libc-18.nix fmt . -- --ciclean;nix flake check --all-systems --no-build --accept-flake-configall checks passed.🤖 Generated with Claude Code